package cn.sc.summer.summerboot.runner;

import cn.sc.summer.core.runner.ServerCommonRunner;
import cn.sc.summer.domain.service.MinioService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * 类名：服务启动后执行的操作类
 *
 * @author a-xin
 * @date 2023/8/25 14:31
 */
@Slf4j
@Component
public class OssCommandLineRunner extends ServerCommonRunner {

    @Resource
    private MinioService minioService;

    /**
     * 初始化完成后执行逻辑(服务启动指定间隔内不执行)
     *
     * @param args 参数
     */
    @Override
    protected void startRunComplete(String... args) {
    }

    /**
     * 初始化完成后执行逻辑
     *
     * @param args 参数
     */
    @Override
    protected void startRun(String... args) {
        minioService.initMinio();
    }

    /**
     * 如果该实例为最后一个实例，则执行摧毁逻辑
     *
     * @param event spring容器关闭事件信息
     */
    @Override
    protected void lastDestroy(@NonNull ContextClosedEvent event) {
    }

    /**
     * 默认执行的摧毁逻辑
     *
     * @param event spring容器关闭事件信息
     */
    @Override
    protected void destroy(@NonNull ContextClosedEvent event) {

    }

}
